perm filename HINIT[KID,KMC] blob sn#122891 filedate 1974-11-15 generic text, type T, neo UTF8
	TITLE HINIT
	HSTCHN←12
	X1←6
	X2←7
	X3←X2+1
	X4←X3+1
TOP:	CLRBFI
	OUTSTR	[ASCIZ/TYPE THE CHILD'S NAME (ONE TO SIX CHARACTERS),/]
	OUTSTR	CRLF
	OUTSTR	[ASCIZ/ FOLLOWED BY CARRIAGE RETURN: /]
	MOVEI X1,0	;CLEAR AC
	MOVEI	X3,0
	MOVEI	X4,7		;ALLOW FROM 1 TO 6 CHARACTERS
NAMEIN:	INCHRW	X1	;GET A CHARACTER
	SUBI	X1,040	;CONVERT TO SIXBIT
	JFFO	X1,NONBL	;IGNORE IT IF ITS BLANK
	JRST	,NAMEIN	; AND GO TRY AGAIN
NONBL:	JUMPL	X1,GOTNAM	;IF ITS A CARRIAGE RETURN, NAME IS IN
	LSH	X3,6	;MAKE ROOMN FOR NEW CHARACTER
	ORM	X1,X3	;INSERT IT
	SOJ	X4,		;COUNT IT
	JRST	,NAMEIN	;GO GET ANOTHER
GOTNAM:	SOJE	X4,SAVNAM	;IF FILE NAME IS LEFT-ADJUSTED, GO SAVE IT
	LSH	X3,6		; ELSE SHIFT IT LEFT ONE CHARACTER
	JRST	GOTNAM		; AND GO TEST AGAIN
SAVNAM:	MOVEM	X3,FILNAM	;SAVE THE FILE NAME
	INIT	HSTCHN,17	;INITIALIZE IN DUMP MODE
	SIXBIT	/DSK/
	XWD	0,0
	JRST	BADOPN		;<ERROR BRANCH>
	LOOKUP	HSTCHN,FILNAM	;SEE IF A FILE OF THIS NAME ALREADY EXISTS
	JRST	NOFILE		;IF IT DOES NOT, GO AHEAD
	JRST	NOTNEW		;GO OUT IF FILE ALREADY EXISTS
NOFILE:	ENTER	HSTCHN,FILNAM	;OPEN FILE FOR OUTPUT
	JRST	BADENT		;<ERROR BRANCH>
	OUTSTR	[ASCIZ/PLEASE STAND BY/]
	MOVEI	X1,200		;SET TO COUNT 128 BLOCKS
NEWBLK:	SOJE	X1,CLOSE	;IF WEVE WRITTEN ENOUGH, GO CLOSE
	OUTPUT	HSTCHN,COMAND	;WRITE OUT A BLOCK
	JRST	NEWBLK		;AND GO DO IT AGAIN
CLOSE:	CLOSE	HSTCHN,2	;CLOSE UP SHOP
	OUTSTR	CRLF
	OUTSTR	[ASCIZ/FILE SUCCESSFULLY INITIALIZED/]
EXIT:	CALL	[SIXBIT/EXIT/]	;GO HOME

COMAND:	IOWD	200,EMPTY	;OUTPUT EMPTY BLOCK OF LENGTH 128
	0
EMPTY:	000010000000		;INDIRECT ADRESSING USING REGISTER 8
	777777777777		;DEBUG AID FOR HISTORY PACKAGE
	BLOCK	176		;REST OF BLOCK IMMATERIAL
FILNAM:	XWD	0,0		;SLOT FOR FILE NAME
	SIXBIT	/HST/		;EXTENSION IS HST
	XWD	0,0
PPN:	SIXBIT /  1KMC/		;PROJECT-PROGRAMMER IS 1,KMC
BADOPN:	OUTSTR	[ASCIZ/BAD OPEN; PLEASE TRY AGAIN/]
	JRST	RESET		;GO TRY AGAIN
BADENT:	OUTSTR	[ASCIZ/BAD ENTER; PLEASE TRY AGAIN/]
	JRST	RESET
NOTNEW:	OUTSTR	[ASCIZ/FILE ALREADY EXISTS. PICK ANOTHER NAME./]
RESET:	OUTSTR	CRLF
	MOVEI	X3,0		;CLEAR REGISTER 3
	MOVEM	X3,FILNAM+2	;RESET FILE INFO
	HRRM	X3,FILNAM+1
	MOVE	X3,[SIXBIT/  1KMC/]
	MOVEM	X3,PPN
	RELEAS	HSTCHN,0	;FREE CHANNEL
	JRST	TOP		;AND GO TRY AGAIN

CRLF:	064240000000
	END	TOP